#pragma once

#include <math.h>


#include <float.h>

#include "Vec3f.hpp"
using siut::simd::Vec3f;
#include "Mat3f.hpp"
using siut::simd::Mat3f;
#include "Mat4f.hpp"
using siut::simd::Mat4f;
#include "Quatf.hpp"
using siut::simd::Quatf;

namespace TorPhysix
{
#if 1

    #define SINGLE_PRECISION
    typedef float real;
    #define REAL_MAX FLT_MAX
    #define real_sqrt sqrtf
    #define real_abs fabsf
    #define real_sin sinf
    #define real_cos cosf
    #define real_exp expf
    #define real_pow powf
    #define real_fmod fmodf
    #define R_PI 3.14159f
	#define DEG_TO_RAD (1.0f / 180.0f * 3.14159f)
#else
    #define DOUBLE_PRECISION
    typedef double real;
    #define REAL_MAX DBL_MAX
    #define real_sqrt sqrt
    #define real_abs fabs
    #define real_sin sin
    #define real_cos cos
    #define real_exp exp
    #define real_pow pow
    #define real_fmod fmod
    #define R_PI 3.14159265358979
#endif
	#define SGN(x) (((x) >= 0) ? 1 : -1) 



} // end namespace torphysix




